Solid-State storage controllers employ a Flash Translation Layer (FTL) to map a Logical Block Address (address location on the storage device presented to the host) to the physical location on the non-volatile memory (NVM) managed by the controller where the data resides. When an event occurs that causes some portion of the FTL to be lost or damaged, or the FTL becomes inconsistent due to a power failure, unsafe shutdown, or programming bug, the FTL is taken through a recovery process to restore the FTL back to a consistent state. The recovery process is bounded by space, time and resources available to firmware running on the controller. In the event that some portion of the FTL cannot be recovered due to some combination of data loss and/or any one of the aforementioned parameters being exceeded, time being related to the expectation of the user or host system accessing the storage controller, the controller, the host system or the user may declare the storage device inoperable.
It would be desirable to have a solid state drive emergency pre-boot application providing an expanded data recovery function for the storage controller.